<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"  http-equiv="content-type" />
  <link rel="stylesheet" type="text/css" href="../style.css" />
  <title>SOCI - DB2 Backend Reference</title>
</head>

<body>
<p class="banner">SOCI - The C++ Database Access Library</p>

<h2>DB2 Backend Reference</h2>

<div class="navigation">
<a href="#prerequisites">Prerequisites</a><br />
<div class="navigation-indented">
  <a href="#versions">Supported Versions</a><br />
  <a href="#tested">Tested Platforms</a><br />
  <a href="#required">Required Client Libraries</a><br />
</div>
<a href="#connecting">Connecting to the Database</a><br />
     
<a href="#support">SOCI Feature Support</a><br />
<div class="navigation-indented">
    <a href="#dynamic">Dynamic Binding</a><br />
    <a href="#bindingbyname">Binding by Name</a><br />
    <a href="#bulk">Bulk Operations</a><br />
    <a href="#transactions">Transactions</a><br />
    <a href="#blob">BLOB Data Type</a><br />
    <a href="#rowid">RowID Data Type</a><br />
    <a href="#nested">Nested Statements</a><br />
    <a href="#procedures">Stored Procedures</a><br />
</div>
  <a href="#native">Accessing the Native Database API</a><br />
  <a href="#extensions">Backend-specific Extensions</a><br />
  <a href="#options">Configuration options</a><br />
</div>

<h3 id="prerequisites">Prerequisites</h3>
<h4 id="versions">Supported Versions</h4>

<p>The SOCI DB2 backend .</p>

<h4 id="tested">Tested Platforms</h4>

<table border="1" cellpadding="5" cellspacing="0">
<tbody>
<tr><th>DB2 version</th><th>Operating System</th><th>Compiler</th></tr>
<tr><td>-</td><td>Linux PPC64</td><td>GCC</td></tr>
<tr><td>9.1</td><td>Linux</td><td>GCC</td></tr>
<tr><td>9.5</td><td>Linux</td><td>GCC</td></tr>
<tr><td>9.7</td><td>Linux</td><td>GCC</td></tr>
<tr><td>10.1</td><td>Linux</td><td>GCC</td></tr>
<tr><td>10.1</td><td>Windows 8</td><td>Visual Studio 2012</td></tr>
</tbody>
</table>

<h4 id="required">Required Client Libraries</h4>

<p>The SOCI DB2 backend requires IBM DB2 Call Level Interface (CLI) library.</p>

<h4 id="connecting">Connecting to the Database</h4>

<p>On Unix, before using the DB2 backend please make sure, that you have sourced 
DB2 profile into your environment:</p>

<pre>. ~/db2inst1/sqllib/db2profile</pre>

<p>To establish a connection to the DB2 database, create a session object
using the <code>DB2</code> backend factory together with the database file name:</p>

<pre class="example">
soci::session sql(soci::db2, "your DB2 connection string here");
</pre>

<h3 id="support">SOCI Feature Support</h3>
<h4 id="dynamic">Dynamic Binding</h4>

<p>TODO</p>

<h4 id="bindingbyname">Binding by Name</h4>

<p>TODO</p>

<h4 id="bulk">Bulk Operations</h4>

<p>Supported, but with caution as it hasn't been extensively tested.</p>

<h4 id="transactions">Transactions</h4>

<p>Currently, not supported.</p>

<h4 id="blob">BLOB Data Type</h4>

<p>Currently, not supported.</p>

<h4 id="nested">Nested Statements</h4>

<p>Nesting statements are not processed by SOCI in any special way and 
they work as implemented by the DB2 database.</p>

<h4 id="procedures">Stored Procedures</h4>

<p>Stored procedures are supported, with <code>CALL</code> statement.</p>

<h3 id="native">Acessing the native database API</h3>

<p>TODO</p>

<h3 id="extensions">Backend-specific extensions</h3>

<p>None.</p>

<h3 id="options">Configuration options</h3>

<p>None</p>

<p class="copyright">Copyright &copy; 2013 Mateusz Loskot</p>
</body>
</html>
